/*
通过LD1指示倒计时定时器的三种工作状态。
启动状态(10)： LD1点亮。
暂停状态(00)： LD1闪烁。（亮、灭间隔0.1s）
停止状态(01)： LD1熄灭。

1.输入信号：clk(控制亮灭间隔)、rst、state(状态)
2.输出信号：led

*/

module Led(
    input  logic      clk_led, // 10Hz时钟（周期0.1s）
    input  logic      rst,
    input  logic [1:0] state,
    output logic      led
);

logic flash_reg; // 闪烁状态寄存器

always_ff @(posedge clk_led or posedge rst) begin
    if (rst) begin
        led <= 1'b1;
        flash_reg <= 1'b0;
    end else begin
        case(state)
            // 启动状态：持续点亮
            2'b10 : begin
                led <= 1'b0;
                flash_reg <= 1'b0; // 重置闪烁状态
            end
            
            // 暂停状态：周期性闪烁
            2'b00 : begin
                flash_reg <= ~flash_reg; // 时钟驱动翻转
                led <= flash_reg;        // 输出当前闪烁相位
            end
            
            // 停止状态：完全熄灭
            2'b01 : begin
                led <= 1'b1;
                flash_reg <= 1'b0;      // 重置闪烁状态
            end
            
            // 异常状态处理
            default : begin
                led <= 1'b1;
                flash_reg <= 1'b0;
            end
        endcase
    end
end

endmodule
